package nave.android.game;

import java.awt.Point;
import java.awt.geom.Point2D;

import android.R.dimen;
import android.view.VelocityTracker;


public class Enemy extends AnimatedObject
{
	public static STATE state = STATE.DIREITA;
	static float velocidade = 5;
	static float tempopulo;
	static boolean pulo = false;
	
	public Enemy(Asset image, Point2D pos, Point size, Point sPos,
			Point sSize, Point animationType, boolean input) 
	{
		super(image, pos, size, sPos, sSize, animationType, 0.1f, input);
	}
	
	public void Update()
	{
		
		super.Update();
	}
	
	public static void changeState(STATE state)
	{
		switch (state)
		{
			case DIREITA:
				posicao = new Point2D.Double(velocidade + posicao.getX(), posicao.getY());
				break;
				
			case ESQUERDA:
				posicao = new Point2D.Double(-velocidade + posicao.getX(), posicao.getY());
				break;
				
			case PULODIREITA:
				tempopulo++;
				posicao = new Point2D.Double(velocidade + posicao.getX(), posicao.getY());
				if(pulo == false)
				{
					posicao = new Point2D.Double(posicao.getX(), velocidade + posicao.getY());
					if(tempopulo >= 20)
					{
						posicao = new Point2D.Double(posicao.getX(), -velocidade + posicao.getY());
						pulo = true;
						tempopulo = 0;
					}
				}
				else
				{
					posicao = new Point2D.Double(posicao.getX(), velocidade + posicao.getY());
					if(tempopulo >= 20)
					{
						posicao = new Point2D.Double(posicao.getX(), +velocidade + posicao.getY());
						pulo = false;
						tempopulo = 0;
					}
				}
				break;

				
			case PULOESQUERDA:
				posicao = new Point2D.Double(-velocidade, posicao.getY());
				if(pulo == false)
				{
					posicao = new Point2D.Double(posicao.getX(), velocidade + posicao.getY());
					if(tempopulo >= 20)
					{
						posicao = new Point2D.Double(posicao.getX(), -velocidade + posicao.getY());
						pulo = true;
						tempopulo = 0;
					}
				}
				else
				{
					posicao = new Point2D.Double(posicao.getX(), velocidade + posicao.getY());
					if(tempopulo >= 20)
					{
						posicao = new Point2D.Double(posicao.getX(), +velocidade + posicao.getY());
						pulo = false;
						tempopulo = 0;
					}
				}
				break;
				
			case PARADO:			
				break;
		}
	}
	
	enum STATE
	{
		DIREITA,
		ESQUERDA,
		PULODIREITA,
		PULOESQUERDA,
		PARADO,
	}
	
	public void Draw(Graphics g)
	{
		
	}

}
